/**
 * File Name:WxUtils.java
 * Package Name:com.sxhuayuan.util
 * Date:2017年4月25日上午8:38:24
 * Copyright (c) 2017, sxhuayuan.com All Rights Reserved.
 *
 */

package com.sxhuayuan.parking.utils;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

/**
 * 
 * ClassName:WxUtils <br/>
 * Date: 2017年4月25日 上午8:38:24 <br/>
 * 
 * @author gy
 * @version
 * @since JDK 1.7
 * @see
 */
public class WeixinUtils {

	/**
	 * 由于微信公众号设置获取用户信息的回调域名限制为1个，所以无法同时在两个域名获取auth_code，解决办法是在pay.sxhytech.
	 * com服务器放一个中间页面
	 * (pay.sxhytech.com/wx/get-code.html)，pay以外的其他域名只须请求get-code页面并加上回调
	 * ，它会发起授权，然后转发code和state参数到回调地址,<br>
	 * 参考https://github.com/HADB/GetWeixinCode
	 * 
	 * @author gaoyan
	 * @return
	 * @since JDK 1.7
	 */
	public static String connectOauth2Authorize(String appid, String redirectUri, boolean userInfo, String state) {
		String url = "http://pay.sxhytech.com/wx/get-code.html?appid=%s&scope=%s&state=%s&redirect_uri=%s";
		try {
			return String.format(url, appid, (userInfo ? "snsapi_userinfo" : "snsapi_base"), state == null ? "" : state, URLEncoder.encode(redirectUri, "utf-8"));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return null;
	}
}
